Generation apparatus, generation method, and program

ABSTRACT

Aspects of the present invention disclose a method, computer program product, and system for generating target text based on target data. The method includes one or more processors decomposing one or more portions of text into at least one corresponding keyword and at least one corresponding template. The method further includes learning a classification model associated with selecting a template based on a category of a keyword. The method further includes identifying a target keyword that is represented by target data. The method further includes selecting a target template that is used to represent the target data based on a category associated with the identified target keyword utilizing the classification model. The method further includes generating target text that represents the target data based on the selected text template based on the selected target template and the identified target keyword.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority under 35 U.S.C. § 119 to Japan PatentApplication No. 2014-221051 filed Oct. 30, 2014, the entire contents ofwhich are incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to a generation apparatus, a generationmethod, and a program.

A report based on statistical information, such as graph and tabularforms, can be conventionally made in such a manner that a person (e.g.,reporter) can extract potential features to report on from thestatistical information, or additionally to create a text report at thediscretion of the reporter. Extracting predetermined information from astatistical report, and the conversion of the information to apredetermined structure is a method utilized to create such reports.

SUMMARY

Aspects of the present invention disclose a method, computer programproduct, and system for generating target text based on target data. Themethod includes one or more processors decomposing one or more portionsof text into at least one corresponding keyword and at least onecorresponding template. The method further includes one or moreprocessors learning a classification model associated with selecting atemplate based on a category of a keyword. The method further includesone or more processors identifying a target keyword that is representedby target data. The method further includes one or more processorsselecting a target template that is used to represent the target databased on a category associated with the identified target keywordutilizing the classification model. The method further includes one ormore processors generating target text that represents the target databased on the selected text template based on the selected targettemplate and the identified target keyword.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a configuration example of a generation apparatus 100according to an embodiment.

FIG. 2 shows an operation flow of the generation apparatus 100 accordingto the embodiment.

FIG. 3 shows an example of statistics of events acquired by a textacquisition section 110 according to the embodiment.

FIG. 4 shows an example of multiple objective variables and explanatoryvariables generated by a learning processing section 130 according tothe embodiment.

FIG. 5 shows a variation of the generation apparatus 100 according tothe embodiment.

FIG. 6 shows an example of the hardware configuration of a computer1900.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that, even whenpredetermined information is extracted from statistical information andconverted to a predetermined structure, there can be a difficulty increating text automatically because a decision by an individual (e.g., areporter) that has specialized knowledge and the like can be required tocreate a report text. Further, when statistical information contains anew word, such as a new product that does not exist in a database, it isoften desired to create a report for the new word. However, since thereis no information on the new word, it is more difficult to create thereport automatically.

Embodiments of the present invention provide a generation apparatus, ageneration method, and a program, where the generation apparatus is forgenerating a target text representing target data, including: adecomposition processing section for decomposing each of multiple textsinto a keyword and a template; a learning processing section forlearning a classification model to select a template based on thecategory of a keyword; an identification section for identifying atarget keyword representing the target data; a selection section forselecting a target template used to represent the target data based onthe category of the target keyword using the classification model; and ageneration section for generating the target text representing thetarget data based on the target template and the target keyword.

The present invention will be described below in connection with apreferred embodiment. It should be noted that the following embodimentis not intended to limit the invention in the appended claims. Further,all the combinations of the features described in the embodiment are notnecessarily essential to the means for solving the problem in thepresent invention.

FIG. 1 shows a configuration example of a generation apparatus 100according to an embodiment of the present invention. The generationapparatus 100 automatically creates text representing the features oftarget data based on the target data as statistical information, such asgraph and tabular forms, acquired from the outside. In the embodiment,the text representing the target data is set as a target text. Thegeneration apparatus 100 includes a text acquisition section 110, adecomposition processing section 120, a learning processing section 130,a storage section 140, a target data acquisition section 210, anidentification section 220, a selection section 230, and a generationsection 240.

The text acquisition section 110 acquires multiple texts. Here, themultiple texts are texts representing the features of statisticalinformation and the like that have been reported in the past. Themultiple texts may be created by experts and/or skilled persons, such astexts in which graphs of product-by-product inquiries and the number ofcomplaints are evaluated and described, texts in which graphs indicativeof monthly orders for products and selling situations are described,texts in which present and/or future weather information is describedfrom a distribution of weather data on various regions, and texts inwhich graphs of stock price movement and exchange rate fluctuations withtime are described and future activities are predicted. For example, thetext acquisition section 110 acquires texts, such as “customers do notknow the part # of the ink for Printer A01,” and “the order for scannerB02 is improved as compared with three months before.”

The text acquisition section 110 may acquire multiple texts created byusers using a business analysis tool, a marketing tool, and the like.The text acquisition section 110 is connected, for example, to a storagedevice (e.g., an external database) to acquire the multiple texts. Thetext acquisition section 110 may also acquire multiple texts entered byusers. The text acquisition section 110 may operate integrally with thegeneration apparatus 100. Alternatively, the text acquisition section110 may operate separately from the main body of the generationapparatus 100. In this case, the text acquisition section 110 may beconnected to the main body of the generation apparatus 100 through anetwork or the like.

In one embodiment, the decomposition processing section 120 decomposeseach of multiple texts into a keyword and a template. In anotherembodiment, the decomposition processing section 120 may decompose eachof multiple texts into a set of keywords and a template. Thedecomposition processing section 120 may be connected to the textacquisition section 110 to extract one or more keywords from an acquiredtext based on a pre-stored list of multiple keywords or the like. Thedecomposition processing section 120 further acquires a categorycorresponding to each of the extracted keywords based on the list ofmultiple keywords or the like.

The decomposition processing section 120 may also extract a templatefrom the acquired text based on a pre-stored list of multiple templatesor the like. Here, the decomposition processing section 120 may set, asa template, a text in which a category corresponding to a keywordextracted from the text is applied to the position of the keyword.

The decomposition processing section 120 may decompose a text into oneor more keywords and a template using language processing. Further, thedecomposition processing section 120 may decompose the text into akeyword that does not exist in the list of keywords and a template thatdoes not exist in the list of templates by language processing or thelike. In this case, the decomposition processing section 120 may add thedecomposed keyword and/or template to the corresponding lists,respectively.

The learning processing section 130 learns a classification model toselect a template based on the category of a keyword. The learningprocessing section 130 is connected to the decomposition processingsection 120 to acquire multiple keywords and multiple templatesrespectively decomposed from the multiple texts. The learning processingsection 130 learns the classification model to select a templatedecomposed from one text according to a category corresponding to akeyword included in the one text. The learning processing section 130may learn the classification model to select a template based on thecategory of a keyword and the statistic of an event corresponding to thekeyword.

Further, when the decomposition processing section 120 decomposes a textinto a set of keywords and a template, the learning processing section130 learns the classification model to select a template based on a setof categories corresponding to the set of keywords and the statistics ofevents corresponding to the set of keywords. The learning by thelearning processing section 130 will be described later.

The storage section 140 is connected to the learning processing section130 to receive and store the classification model learned by thelearning processing section 130. The storage section 140 may also storeintermediate data in the process of learning by the learning processingsection 130, calculation results, and the like, respectively. Further,the storage section 140 may supply the stored data to a requestor inresponse to a request from each section in the generation apparatus 100.The storage section 140 may have a keyword storage section 142 and atemplate storage section 144. The storage section 140 may be provided inthe main body of the generation apparatus 100. Alternatively, thestorage section 140 may be a database or the like connected to anetwork.

The keyword storage section 142 stores keywords belonging to each ofmultiple categories in association with the category. The keywordstorage section 142 may store predetermined keywords or may be connectedto the decomposition processing section 120 to store keywords decomposedby the decomposition processing section 120. The keyword storage section142 may be a list of keywords referred to by the decompositionprocessing section 120. The keyword storage section 142 may be a keyworddictionary and/or a category dictionary to store multiple keywordstogether with corresponding categories.

The template storage section 144 stores templates obtained bydecomposing multiple texts. The template storage section 144 may storepredetermined templates or may be connected to the decompositionprocessing section 120 to store templates decomposed by thedecomposition processing section 120. The template storage section 144may be a list of templates to be referred to by the decompositionprocessing section 120. The template storage section 144 may be atemplate dictionary to store multiple templates.

The target data acquisition section 210 acquires target data. Here, thetarget data can include statistical information, such as graph andtabular forms. Further, the statistical information includes one or morekeywords and the like, and a target keyword representing the target datais included in the keywords. In other words, the statistical informationincludes keywords as candidates for the target keyword. The target dataacquisition section 210 may acquire the statistic of an eventcorresponding to a keyword. In other words, the target data acquisitionsection 210 may acquire a target statistic as the statistic of an eventcorresponding to a target keyword in the target data.

The target data acquisition section 210 may be connected to a businessanalysis tool, a marketing tool, and the like to acquire statisticalinformation used to create a report to be output by the tools and thelike. Further, the target data acquisition section 210 may be connectedto a storage device (e.g., an external database) to acquire statisticalinformation. Further, the target data acquisition section 210 mayacquire statistical information entered by users.

The identification section 220 identifies a target keyword representingthe target data. The identification section 220 is connected to thetarget data acquisition section 210 to set as the target keyword akeyword contained in the statistical information. When the statisticalinformation contains multiple keywords, the identification section 220may identify a set of target keywords. In this case, the identificationsection 220 may also identify two or more combinations of keywords to beset as target keywords.

The selection section 230 is connected to the storage section 140 andthe identification section 220 to select a target template used torepresent the target data using the classification model learned by thelearning processing section 130 based on the category of a targetkeyword identified by the identification section 220. The selectionsection 230 may select a target template based on the category of atarget keyword and a target statistic. Further, when the identificationsection 220 identifies a set of target keywords, the selection section230 may select a target template having a set of categories based on theset of categories corresponding to the set of target keywords and targetstatistics.

The generation section 240 is connected to the selection section 230 togenerate a target text representing the target data based on the targettemplate and the target keyword. As an example, the generation section240 applies a target keyword corresponding to a category contained in atarget template to the target template to generate a target text.Further, when the identification section 220 identifies a set of targetkeywords, the generation section 240 generates a target text based onthe set of target keywords and the target template. As an example, thegeneration section 240 applies respectively corresponding targetkeywords to a set of categories contained in the target template togenerate a target text.

The above generation apparatus 100 of the embodiment acquires multipletexts created based on statistical information and the like, and learnsa classification model to create each of the texts based on a keyword(s)contained in the text. Then, the generation apparatus 100 generates atarget text representing target data using the learned classificationmodel based on the keyword(s) contained in the target data. Theoperation of the generation apparatus 100 will be described in furtherdetail with reference to FIG. 2.

FIG. 2 shows an operation flow of the generation apparatus 100 accordingto an embodiment of the present invention. In the embodiment, thegeneration apparatus 100 executes processing steps S310 to S380 to learna classification model in order to generate a target text representingtarget data. In the embodiment, an example where the generationapparatus 100 generates a text representing statistical information onthe number of product-by-product inquiries will be described.

In process S310, the text acquisition section 110 acquires multipletexts. For example, the text acquisition section 110 acquires textscreated in the past, such as “Do not know the part # of the ink forprinter A01” as a first text, “LED bulb L2 went out in a month” as asecond text, and “The calls for cancellation are increasing” as a thirdtext.

In process S320, the decomposition processing section 120 decomposeseach of multiple texts into keywords and a template. For example, thedecomposition processing section 120 extracts a keyword from theacquired text using a keyword dictionary stored for each category in thekeyword storage section 142.

In an example embodiment, the keyword storage section 142 storeskeywords such as “printer A01” and “LED bulb L2” in a “Product”category, a keyword such as “cancellation” in a “Contract” category,keywords such as “do not know . . . ink” in a “Question for a component”category, keywords such as “in a month” in a “Duration of service”category, and keywords such as “went out” in a “Problem” category,respectively. Note that the Product category is set as a first category,the Contract category as a second category, the Question for a componentcategory as a third category, the Duration of service category as afourth category, and the Problem category as a fifth category. In thisexample embodiment, the decomposition processing section 120 extracts,as keywords, “printer A01” and “do not know . . . ink” from the firsttext. Similarly, the decomposition processing section 120 extracts, askeywords, “LED bulb L2,” “went out,” and “in a month” from the secondtext, and “cancellation” from the third text, respectively.

Thus, the decomposition processing section 120 detects keywords storedin the keyword storage section 142 from each of the multiple texts.Then, the decomposition processing section 120 determines a templatebased on portions of each text other than the keyword portions. Forexample, the decomposition processing section 120 sets, as a template, atext in which categories corresponding to keywords extracted from eachtext are applied to the positions of the keywords. In other words, thedecomposition processing section 120 searches each text for each keywordincluded in the keyword dictionary. Then, when the keyword is hit, thedecomposition processing section 120 replaces a keyword portion in thetext by a corresponding category.

As an example, the decomposition processing section 120 sets, as a firsttemplate, “[Y] the part # of the [Y] for [X]” (where [X] is the Productcategory and [Y] is the Question for a component category) based on thefirst text. Similarly, based on the second and third texts, thedecomposition processing section 120 sets “[X] [Z] [Y]” (where [X] isthe Product category, [Y] is the Duration of service category, and [Z]is the Problem category), and “The calls for [X] are increasing” (where[X] is the Contract category) as second and third templates,respectively.

Thus, the decomposition processing section 120 decomposes the acquiredmultiple texts into the keywords and templates, respectively. Note thatthe decomposition processing section 120 may store the decomposedtemplates in the template storage section 144.

In the above description, the decomposition processing section 120replaces a keyword in each text by a corresponding category to decomposethe text into a template. Alternatively, the decomposition processingsection 120 may use the template dictionary stored in the templatestorage section 144 to decompose the acquired text into a template.

For example, the template storage section 144 stores, in the templatedictionary, “[Y] the part # of the [Y] for [X],” “[X] [Z] [Y],” “Thecalls for [X] are increasing,” and the like. The decompositionprocessing section 120 may perform decomposition to set a templateobtained by matching between a remaining text, obtained by removingextracted keywords from each text, and a template stored in the templatestorage section 144, as a template for the text.

Alternatively, the decomposition processing section 120 may performdecomposition processing for keywords and a template by using knownlanguage processing or the like. For example, the decompositionprocessing section 120 performs morphological analysis by naturallanguage processing to recognize separation between words, and performssyntax analysis to recognize a text structure. On that basis, thedecomposition processing section 120 searches a dictionary for apredetermined part of speech such as noun, and when the part of speechis hit, replaces the part of speech by a corresponding category. In thiscase, the decomposition processing section 120 may store, in thecorresponding keyword storage section 142 or template storage section144, information on a decomposed keyword, a category corresponding tothe keyword, and/or a template.

In process 5330, the learning processing section 130 learns aclassification model for selecting a template based on the category ofeach keyword. The learning processing section 130 learns theclassification model to select a template decomposed from one textaccording to one or more categories corresponding to one or morekeywords included in the one text.

The learning processing section 130 may learn a classification model forselecting a template based on the statistics of events corresponding toone or more keywords. In this case, the text acquisition section 110acquires, in addition to the multiple texts, the statistics of eventscorresponding to one or more keywords as statistical information as thebases of the created multiple texts.

FIG. 3 shows an example of the statistics of events acquired by the textacquisition section 110 according to an embodiment of the presentinvention. As an example, FIG. 3 shows keywords in the: Question for acomponent: category in the lateral direction, such as “Where is . . .power button” (Question for the position of a power supply button of . .. ), “Do not know . . . ink,” and “How to change . . . battery”(Charging method for the battery of . . . ). Further, as an example,FIG. 3 shows keywords in the Product category in the longitudinaldirection, such as “Printer A01,” “Printer A02,” and “Note PC A01.”

Each number shown in FIG. 3 indicates the number of co-occurrences, andeach number in parentheses indicates a correlation value. For example,FIG. 3 shows that the number of times of co-occurrence of the keywords“Printer A01” and “Do not know . . . ink” in product-by-productinquiries is 35, and the correlation value is 20. Further, for example,FIG. 3 shows that the number of times of co-occurrence of the keywords“Note PC A01” and “How to change . . . battery” in theproduct-by-product inquiries is 128, and the correlation value is 2.3.

Here, “co-occurrence” means that the keywords (“Printer A01” and “Whereis . . . power button”) concurrently appear in a text representing oneinquiry, evaluation, the description of a phenomenon, or the like. Thelearning processing section 130 can use the number of co-occurrences toassociate, with a template, a combination of keywords likely to appearin texts in order to perform learning. Further, the correlation valueindicates a ratio of the number of co-occurrences of the keywords to thenumber of product-by-product inquiries. The learning processing section130 can use such a correlation value to associate a combination ofkeywords highly correlated in the text with a template in order toperform learning.

Here, it is found that the keywords “Printer A01” and “Do not know . . .ink” have higher values than the others in terms of both the number ofco-occurrences and the correlation value. Therefore, the learningprocessing section 130 can learn the keywords as keywords more likely toappear in a template including categories corresponding to the keywords.

On the other hand, it is found that the keywords “Note PC A01” and “Howto change . . . battery” have a higher value of the number ofco-occurrences than the others, but the correlation value of which isnot so high. In other words, it is found that the number of appearancesof “How to change . . . battery” in inquiries about “Note PC A01” is128, but in the inquiries about the others, the values are larger than128. Thus, the learning processing section 130 can use the number ofco-occurrences and the correlation to learn more accurately whether eachkeyword is a keyword more likely to appear.

The text acquisition section 110 may further acquire a statisticindicative of an increase or decrease (time-series variation) in thenumber of appearances of each keyword. This enables the learningprocessing section 130 to learn whether an event corresponding to thekeyword actually increases.

Thus, the text acquisition section 110 acquires the statisticsindicative of the number of co-occurrences of a set of keywords, acorrelation between keywords, and an increase or decrease in an eventcorresponding to each of the keywords. Then, based on the statistics,the learning processing section 130 generates an objective variable andan explanatory variable to learn a classification model capable ofobtaining a corresponding objective variable for an explanatoryvariable. Here, the explanatory variable may be generated according to acombination of keywords, and the objective variable may be generatedaccording to a corresponding template.

For example, the learning processing section 130 sets the dimensions ofan explanatory variable to n×k+m according to the maximum value n ofcategories contained in the template, the types k of categories, and thetypes m of statistics used. In the embodiment, an example where thelearning processing section 130 generates an explanatory variable having18 dimensions according to n=3, k=5, and m=3 will be described.

As an example, the learning processing section 130 uses a column vectorhaving 18 elements as the explanatory variable. In this case, thelearning processing section 130 may make first to fifth elementscorrespond to a first category to a fifth category, respectively, to set1 or 0 depending on the category positioned in [X] of the template. Forexample, when the category positioned in [X] is the first category, thelearning processing section 130 sets the first to fifth elements as [1,0, 0, 0, 0].

Similarly, the learning processing section 130 makes sixth to 10thelements correspond to a category positioned in [Y] of the template, andeleventh to 15th elements to a category positioned in [Z] of thetemplate. For example, when the category positioned in [Y] is a thirdcategory, the learning processing section 130 sets the sixth to 10thelements as [0, 0, 1, 0, 0], and when there is no category positioned in[Z], sets the 11th to 15th elements to all zeros.

Further, for example, the learning processing section 130 sets the 16thelement as a value of the number of co-occurrences, the 17th element asa correlation value, and the 18th element as a time-series variation ofthe event. As an example, the learning processing section 130 may setthe values of the 16th to 18th elements in the explanatory function forthe keywords “Printer A01” and “Do not know . . . ink” as [35, 20, 2.3].

As an example, based on the keywords and the first template decomposedfrom the first text, the learning processing section 130 sets thecategory to be placed in [X] of the first template as the first categorycorresponding to “Printer A01,” the category to be placed in [Y] as thethird category corresponding to “Do not know . . . ink,” and no categoryto be placed in [Z]. Further, the learning processing section 130acquires 35, 20, and 2.3 as the values of the statistics (the number ofco-occurrences, the correlation, and time-series variation) in thisorder corresponding to the keywords “pPrinter A01” and “Do not know . .. ink” decomposed from the first text. Thus, the learning processingsection 130 sets the first to 18th elements of a first explanatoryfunction corresponding to the first text as [1, 0, 0, 0, 0, 0, 0, 1, 0,0, 0, 0, 0, 0, 0, 35, 20, 2.3] in this order.

Then, the learning processing section 130 generates a first objectivefunction indicative of the first template in response to the firstexplanatory function. For example, the learning processing section 130sets, as the objective function, a column vector having elements largerin number than or equal to those of the template. As an example, thelearning processing section 130 uses a column vector having elementswhose number is 18 as an objective variable. In this case, the learningprocessing section 130 may associate the first to 18th elements with thefirst template to the 18th template, respectively, to set 1 or 0depending on the template. For example, in the case of an objectivevariable indicative of the first template, the learning processingsection 130 generates, as a first objective variable, a column vector,in which the first element is set to 1 and the other elements are set to0.

Thus, the learning processing section 130 can generate the firstexplanatory variable and the first objective variable according to thekeywords and the first template decomposed from the first text.Similarly, the learning processing section 130 generates sets ofmultiple corresponding explanatory variables and objective variablesaccording to the decomposition results of the multiple texts.

FIG. 4 shows an example of multiple objective variables and explanatoryvariables generated by the learning processing section 130 according tothe embodiment. FIG. 4 shows an example where sets of objectivevariables corresponding to explanatory variables are arranged in thehorizontal direction (in rows).

FIG. 4 shows templates and texts corresponding to the objectivevariables in columns of the objective variables. For example, the firsttemplate and the first text are shown in a first row. Note that eachtext is displayed in parentheses, and keywords to be decomposed areindicated by underlines added to the text. As described in the aboveexample, for example, the learning processing section 130 generates theNth objective variable with the Nth element set to 1 and the otherelements set to 0 to show the Nth template.

Further, FIG. 4 shows an example where categories to be placed inpositions [X], [Y], and [Z] of each template, and three values ofstatistics (the number of co-occurrences, the correlation, and thetime-series variation of an event) are arranged as an explanatoryvariable. As described in the above example, in response to the factthat the category X is the first category (Product), the learningprocessing section 130 sets the first element of the explanatoryvariable to 1 and the second to fifth elements to 0. Further, inresponse to the fact that the category X is the second category(Contract), the learning processing section 130 sets the second elementof the explanatory variable to 1, and the first, and third to fifthelements to 0.

Further, in response to the fact that the category Y is the thirdcategory (Question for a component), the learning processing section 130sets the eighth element of the explanatory variable to 1, and the sixth,seventh, ninth, and 10th elements to 0. Further, in response to the factthat the category Y is the fourth category (Duration of service), thelearning processing section 130 sets the ninth element of theexplanatory variable to 1, and the sixth to eighth, and 10th elements to0. Further, in response to the fact that the category Z is the fifthcategory (Problem), the learning processing section 130 sets the 15thelement of the explanatory variable to 1, and the 11th to 14th elementsto 0.

As described above, the learning processing section 130 generates setsof corresponding explanatory variables and objective variables based onthe multiple texts. Then, the learning processing section 130 learns aclassification model so that one objective variable corresponding to oneexplanatory variable will be selected (predicted). For example, thelearning processing section 130 performs learning using a classificationmodel by regression analysis. As an example, the learning processingsection 130 performs learning by using a known model that is ageneralized linear model such as logistic regression as theclassification model.

When there is a text to be further acquired, i.e., the learning is notcompleted (process S340, no branch), the generation apparatus 100 maycontinue learning by returning to the text acquisition step (S310). Whenthere is no text to be further acquired, i.e., the learning is completed(process S340, yes branch), the generation apparatus 100 may completethe learning. In the case of the learning being completed, the learningprocessing section 130 stores the learned learning model in the storagesection 140. Further, when the learning process does not converge evenafter a predetermined time has elapsed, the generation apparatus 100 mayinterrupt the learning and give notice to a user such as warning.

In process S350, the target data acquisition section 210 acquires targetdata. Similarly to the text acquisition section 110, the target dataacquisition section 210 may acquire statistics on the target data. Inother words, the target data acquisition section 210 can acquire atarget statistic indicative of at least one of the number ofco-occurrences of a set of target keywords, a correlation betweenkeywords in the set of target keywords, and an increase or decrease inan even corresponding to each of the target keywords. After theidentification section 220 identifies a target keyword, the target dataacquisition section 210 may acquire a target statistic in response toreceiving information on the target keyword from the identificationsection 220.

In process S360, the identification section 220 identifies a targetkeyword representing the target data. Similarly to the operation of thedecomposition processing section 120, the identification section 220 mayidentify a target keyword using the keyword dictionary stored in thekeyword storage section 142. Instead of, or in addition to this, theidentification section 220 may identify the target keyword by languageprocessing or the like. Here, a target keyword contained in the targetdata may not exist in the dictionary or the like, such as the name of anew product. When such a target keyword is included in the target data,identification section 220 is capable of identifying the target keywordusing language processing or the like.

Further, the identification section 220 identifies a category of thetarget keyword by using the keyword dictionary or the like. When thetarget keyword does not exist in the dictionary or the like, theidentification section 220 may detect a keyword similar to the targetkeyword to set a category corresponding to the similar keyword as thecategory of the target keyword. Thus, for example, when the targetkeyword is “Printer A02” as a new product of Printer A series, even ifthe target keyword is not registered in the keyword dictionary, theidentification section 220 can identify that the target keyword is inthe product category from keywords registered in the keyword dictionary,such as “Printer A01,” “Printer A,” and “Printer.”

In process S370, the selection section 230 uses the classification modellearned by the learning processing section 130 to select, based on thecategory of the target keyword, a target template to be used torepresent the target data. The selection section 230 generates acorresponding explanatory variable based on the target keyword. In otherwords, the selection section 230 defines the values of elementscorresponding to the category of the explanatory variable (the first to15th elements in the above example) according to the category of thetarget keyword. Further, the selection section 230 uses the targetstatistic acquired by the target data acquisition section 210 to definethe values of elements corresponding to the statistics of theexplanatory variable (the 16th to 18th elements in the above example).

The selection section 230 generates the explanatory variable of thetarget data, and this enables the selection section 230 to predict atarget template corresponding to the target data using the learnedclassification model. In other words, the selection section 230 maycalculate an objective variable from the explanatory variable and theclassification model to set, as the target template, a templatecorresponding to the calculated objective variable (corresponding to anelement closest to 1).

In process S380, the generation section 240 inserts each target keywordin the predicted target template to generate a target text representingthe target data. As an example, the generation section 240 insertscorresponding target keywords into the positions [X], [Y], and [Z] ofthe categories of the target template to generate a target text. Here,the generation section 240 may make alterations in verb and the like toalter the target data into a grammatically correct expression along withthe insertion of the target keywords into the target template. In thiscase, the generation section 240 may use language processing or thelike.

As described above, the generation apparatus 100 of the embodiment canlearn a classification model for selecting a target template to be usedto represent target data based on multiple texts, insert target keywordsinto a target template, and generate a target text representing thetarget data. Thus, the text acquisition section 110 acquires multipletexts included in reports created in the past, and the decompositionprocessing section 120 decomposes the multiple texts to cause thelearning processing section 130 to perform learning so that aclassification model corresponding to the reports can be obtained. Thisenables the generation section 240 to generate a target text to beincluded in a newly created report.

Thus, from texts created in the past based on past statisticalinformation, the generation apparatus 100 can automatically create atext to be newly created based on new statistical information. In otherwords, the generation apparatus 100 can learn creator's know-how to readcharacteristic parts of statistical information based on the knowledge,experience, and ability of the creator to create a similar text based onnew statistical information without intervene of the creator. Even whenstatistical information contains a new word such as a new product thatdoes not exist in a database or the like, the generation apparatus 100can generate a proper text.

Thus, for example, report preparation work, transfer of the work, thedevelopment of the work, and the like can be carried out smoothly.Further, the generation apparatus 100 can accumulate the know-how tocreate texts for each business field, each area, and each text creator.In addition, more specialized texts can also be generated based on theaccumulated information.

FIG. 5 shows a variation of the generation apparatus 100 according tothe embodiment. In the generation apparatus 100 of the variation,substantially the same components as those of the generation apparatus100, according to the embodiment shown in FIG. 1, are given the samereference numeral to omit the description thereof. The generationapparatus 100 of the variation further includes an input section 250, acorrection section 260, and an addition section 270.

The input section 250 is connected to the text acquisition section 110and the storage section 140 to help the text acquisition section 110acquire a text when a user enters the text or the like directly ormodifies the text. When the user enters or modifies a target text, theinput section 250 presents, as an input candidate, at least either akeyword(s) stored in the keyword storage section 142 or a templatestored in the template storage section 144 while the user is enteringthe target text.

For example, when the user enters “LED bulb L2,” since it is detectedthat the keyword in the first category is first entered, the inputsection 250 can predict that a text to be decomposed into the secondtemplate is entering. Therefore, according to the array of the secondtemplate, the input section 250 displays, as a candidate for thefollowing text part, a keyword in the fifth category, such as “went out”following the result of entering “LED bulb L2” in the first category.This enables the input section 250 to facilitate the user's text inputand perform the input operation accurately.

Instead of, or in addition to this, the input section 250 may perform afuzzy prefix search on the acquired multiple texts to acquire anddisplay a candidate for the following text part. Thus, for example, evenif the user enters “LED bulb L5” as a new part # that is not registeredin the dictionary, the input section 250 can display a keyword, such as“went out” as a candidate for the following text part.

Based on at least either a keyword stored in the keyword storage section142 or a template stored in the template storage section 144, thecorrection section 260 corrects the orthographical variants of a keywordand a template obtained by newly decomposing a text. The correctionsection 260 is connected to the decomposition processing section 120 andthe storage section 140 to correct orthographical variants that occurwhen the decomposition processing section 120 decomposes the text intothe keyword and the template based on information stored in the storagesection 140.

For example, when meanings are substantially the same or similar even ifthe expressions, character strings, or the like are different, such as“Customers cannot find” and “Do not know,” “#” and “number,” and“Printer A01” “printer A-01,” it is desired to recognize substantiallythe same keywords and templates. Therefore, the correction section 260corrects orthographical variants in text parts (not registered in thedictionary) other than the parts identified by referring to the keyworddictionary and the template dictionary.

For example, when edit distance between a keyword obtained by newlydecomposing a text and a keyword stored in the keyword storage section142 is less than a predetermined reference distance, the correctionsection 260 may determine that these keywords are the same. Further,when edit distance between a template obtained by newly decomposing atext and a template stored in the template storage section is less thana predetermined reference distance, the correction section 260 maydetermine that these templates are the same.

Further, the correction section 260 may determine a difference betweensingular and plural forms, a difference from an abbreviation, adifference between lowercase and uppercase letters, a difference betweena hyphen and an under bar, and the like to be in the same domains toperform fuzzy matching with the keyword dictionary and the templatedictionary in order to determine the matches. Further, for example, evenif the omission of a predetermined number of letters, misspelling, theaddition of letters, and the like are detected, the correction section260 may determine the matches to determine a match. In addition, thecorrection section 260 may use a dictionary, in which words, phrases,and the like considered to match with each other are preregistered, todetermine the matches.

The addition section 270 is connected to the generation section 240 andthe text acquisition section 110, respectively, to newly add the targettext generated by the generation section 240 as one of the multipletexts, and supply it to the text acquisition section 110. Here, the usermay edit the target text generated by the generation section 240 such asto alter the target text or the like to perform proper text adjustment.In such a case, the addition section 270 acquires the text altered bythe user and newly adds the text as one of the multiple texts.

The learning processing section 130 learns a classification model againusing the multiple texts with the text added by the addition section270. This allows the generation apparatus 100 to further accumulateknow-how to create a text. Further, the learning processing section 130can learn the text altered by the user again to improve learningaccuracy.

FIG. 6 shows an example of the hardware configuration of a computer 1900functioning as the generation apparatus 100 according to the embodiment.The computer 1900 according to the embodiment includes: a CPU peripheralsection having a CPU 2000, a RAM 2020, a graphics controller 2075, and adisplay device 2080, which are interconnected by a host controller 2082;an I/O section having a communication interface 2030, a hard disk drive2040, and a DVD drive 2060, which are connected to the host controller2082 through an I/O controller 2084; and a legacy I/O section having aROM 2010, a flexible disk drive 2050, and an I/O chip 2070 connected tothe I/O controller 2084.

The host controller 2082 connects the RAM 2020 with the CPU 2000 and thegraphics controller 2075, which access the RAM 2020 at a high transferrate. The CPU 2000 operates based on programs stored in the ROM 2010 andthe RAM 2020 to control each section. The graphics controller 2075acquires image data generated on a frame buffer provided in the RAM 2020by the CPU 2000 or the like, and displays the image on the displaydevice 2080. Alternatively, the graphics controller 2075 may includetherein a frame buffer for storing image data generated by the CPU 2000or the like.

The I/O controller 2084 connects the host controller 2082 with thecommunication interface 2030, the hard disk drive 2040, and the DVDdrive 2060 as relatively high-speed I/O units. The communicationinterface 2030 communicates with other apparatuses through a network.The hard disk drive 2040 stores programs and data used by the CPU 2000in the computer 1900. The DVD drive 2060 reads a program or data from aDVD-ROM 2095 and provides the read program or data to the hard diskdrive 2040 through the RAM 2020.

Also connected to the I/O controller 2084 are relatively low-speed I/Ounits, i.e., the ROM 2010, the flexible disk drive 2050, and the I/Ochip 2070. The ROM 2010 stores a boot program executed when the computer1900 starts, and/or programs and the like depending on the hardware ofthe computer 1900. The flexible disk drive 2050 reads a program or datafrom a flexible disk 2090, and provides the program or data to the harddisk drive 2040 through the RAM 2020. The I/O chip 2070 connects notonly the flexible disk drive 2050 to the I/O controller 2084, but alsovarious I/O devices to the I/O controller 2084 through a parallel port,a serial port, a keyboard port, and a mouse port, for example.

A program provided to the hard disk drive 2040 through the RAM 2020 isprovided by a user in the form of being stored on a recording medium,such as the flexible disk 2090, a DVD-ROM 2095, or an IC card. Theprogram is read from the recording medium, installed in the hard diskdrive 2040 within the computer 1900 through the RAM 2020, and executedby the CPU 2000.

The program is installed on the computer 1900 to cause the computer 1900to function as the text acquisition section 110, the decompositionprocessing section 120, the learning processing section 130, the storagesection 140, the keyword storage section 142, the template storagesection 144, the target data acquisition section 210, the identificationsection 220, the selection section 230, the generation section 240, theinput section 250, the correction section 260, and the addition section270.

Information processes described in the program are read into thecomputer 1900 to function as specific means implemented by software incorporation with the above-mentioned various hardware resources, i.e.,as the text acquisition section 110, the decomposition processingsection 120, the learning processing section 130, the storage section140, the keyword storage section 142, the template storage section 144,the target data acquisition section 210, the identification section 220,the selection section 230, the generation section 240, the input section250, the correction section 260, and the addition section 270. Then,information is computed or processed by the specific means depending onthe intended use of the computer 1900 in the embodiment to build aspecific instance of generation apparatus 100 according to the intendeduse.

As an example, when the computer 1900 communicates with an externaldevice or the like, the CPU 2000 executes a communication program loadedon the RAM 2020 to instruct the communication interface 2030 to performcommunication processing based on the processing content described inthe communication program. Under the control of the CPU 2000, thecommunication interface 2030 reads send data stored in a send bufferarea or the like provided in a storage device, such as the RAM 2020, thehard disk drive 2040, the flexible disk 2090, or the DVD-ROM 2095, tosend the data to a network, or writes receive data received from thenetwork to a receive buffer area or the like provided in the storagedevice. Thus, the communication interface 2030 may transfer dataexchanged with the storage device by the DMA (Direct Memory Access)method. Alternatively, the CPU 2000 may read data from the storagedevice or the communication interface 2030 as a source, and write thedata to the communication interface 2030 or the storage device as adestination to transfer the send/receive data.

Further, the CPU 2000 reads, into the RAM 2020, all or necessary partsfrom files or databases stored in an external storage device, such asthe hard disk drive 2040, the DVD drive 2060 (DVD-ROM 2095), or theflexible disk drive 2050 (flexible disk 2090), by means of DMA transferor the like to perform various processing on the data on the RAM 2020.Then, the CPU 2000 saves the processed data back to the external storagedevice by means of DMA transfer or the like. In such processing, the RAM2020 can be considered to temporarily hold the content of the externalstorage device. Therefore, in the embodiment, the RAM 2020, the externalstorage device, and the like are collectively referred to as the memory,the storage section, the storage device, or the like. Various programsand various kinds of information, such as data, tables, and databases,in the embodiment are stored in such a storage device as targets ofinformation processing. Note that the CPU 2000 can also hold part of thecontent of the RAM 2020 in a cache memory to perform reading and writingon the cache memory. Even in such a form, since the cache memory servesas part of the function of the RAM 2020, the cache memory shall beincluded in the RAM 2020, the memory, and/or the storage device in theembodiment unless otherwise denoted distinctively.

Further, the CPU 2000 performs various processing on the data read fromthe RAM 2020 as specified in a sequence of instructions of a programincluding various arithmetic operations, information processing,conditional determinations, and searching and replacing informationdescribed in the embodiment, and saves the processed data back to theRAM 2020. For example, when a conditional determination is made, the CPU2000 compares any of various variables shown in the embodiment with anyother variable or constant to determine whether it meets a condition,such as larger, smaller, not less than, not more than, or equal to, andwhen the condition is satisfied (or unsatisfied), the procedure branchesto a different sequence of instructions or calls a subroutine.

Further, the CPU 2000 can retrieve information stored in a file or adatabase in the storage device. For example, when two or more entriesare stored in the storage device in such a manner to associate theattribute value of a second attribute with the attribute value of afirst attribute, the CPU 2000 searches the two or more entries stored inthe storage device for an entry with the attribute value of the firstattribute matching with a specified condition to read the attributevalue of the second attribute stored in the entry so that the attributevalue of the second attribute associated with the first attribute thatmeets the predetermined condition can be obtained.

The programs or modules mentioned above may also be stored on anexternal recording medium. As the recording medium, an optical recordingmedium, such as DVD, Blu-ray (registered trademark), or CD, amagnetooptical recording medium such as MO, a tape medium, or asemiconductor memory such as an IC card can be used in addition to theflexible disk 2090 and the DVD-ROM 2095. Further, a storage device, suchas a hard disk or a RAM provided in a server system connected to aprivate communication network or the Internet may also be used as arecording medium to provide a program to the computer 1900 through thenetwork.

While the present invention has been described with reference to theembodiment, the technical scope of the present invention is not limitedto the description of the aforementioned embodiment. It will be obviousto those skilled in the art that various changes and modifications canbe added to the aforementioned embodiment. From the appended claims, itwill also be obvious that forms to which such changes or modificationsare added shall be included in the technical scope of the presentinvention.

The execution sequence of processes, such as operations, procedures,steps, and stages in the apparatus, system, program, and methoddescribed in the appended claims and the specification, and shown in theaccompanying drawings are not particularly specified as “ahead of,”“prior to,” or the like. It should be noted that the operations and thelike can be carried out in any order unless output of the previousprocess is used in the subsequent process. Even when the description ismade using “first,” “next,” and the like in the appended claims, thespecification, and the operation flows in the drawings for conveniencesake, it does not mean that it is imperative to carry out the operationsand the like in this order.

What is claimed is:
 1. A computer-implemented method for generatingtarget text based on target data, the method comprising: decomposing oneor more portions of text into at least one corresponding keyword and atleast one corresponding template; learning a classification modelassociated with selecting a template based on a category of a keyword;identifying a target keyword that is represented by target data;selecting a target template that is used to represent the target databased on a category associated with the identified target keywordutilizing the classification model; and generating target text thatrepresents the target data based on the selected text template and theidentified target keyword.
 2. The method of claim 1, further comprising:acquiring a target statistic as a statistic of an events thatcorresponds to the identified target keyword; and selecting the targettemplate based on the category associated with the identified targetkeyword and the target statistic, wherein learning the classificationmodel is based on the category of the keyword and a statistic of anevent that corresponds to the keyword.
 3. The method of claim 2, whereinthe acquired target statistic is indicative of at least one of: a numberof co-occurrences of a target keyword in a set of target keywords, acorrelation between keywords in a set of target keywords, an increase inan event corresponding to the target keyword, and a decrease in an eventcorresponding to the target keyword.
 4. The method of claim 1, furthercomprising: storing keywords that belong to one or more categoriesrespectively associated with the one or more categories; and storingtemplates from the decomposed one or more portions of text, wherein thedecomposing the one or more portions of text includes detecting a storedkeyword from the one or more portions of text to determine a templatebased on areas of the one or more portions of text, not including thekeyword in the one or more portions of text.
 5. The method of claim 4,further comprising correcting orthogonal variants of a keyword and atemplate from a decomposed portion of text based on one of: a storedkeyword and a stored template.
 6. The method of claim 5, furthercomprising, in response to determining that an edit distance between akeyword obtained by decomposing a portion of text and a stored keywordis less than a predetermined reference distance, determining that thekeyword obtained by decomposing a portion of text and the stored keywordare identical.
 7. The method of claim 5, further comprising, in responseto determining that an edit distance between a template obtained bydecomposing a portion of text and a stored template is less than apredetermined reference distance, determining that the template obtainedby decomposing a portion of text and the stored template are identical.8. The method of claim 4, further comprising: providing an input sectionallowing for user input to enter target text and modify target text,wherein the provided input section includes, while a user in enteringtext, an input candidate and one or more of: a stored keyword and astored template.
 9. A computer program product for generating targettext based on target data, the computer program product comprising: oneor more computer readable storage media and program instructions storedon the one or more computer readable storage media, the programinstructions executable by one or more processors to cause the one ormore processors to perform a method comprising: decomposing one or moreportions of text into at least one corresponding keyword and at leastone corresponding template; learning a classification model associatedwith selecting a template based on a category of a keyword; identifyinga target keyword that is represented by target data; selecting a targettemplate that is used to represent the target data based on a categoryassociated with the identified target keyword utilizing theclassification model; and generating target text that represents thetarget data based on the selected text template and the identifiedtarget keyword.
 10. The computer program product of claim 9, wherein themethod further comprises: acquiring a target statistic as a statistic ofan events that corresponds to the identified target keyword; andselecting the target template based on the category associated with theidentified target keyword and the target statistic, wherein learning theclassification model is based on the category of the keyword and astatistic of an event that corresponds to the keyword.
 11. The computerprogram product of claim 10, wherein the acquired target statistic isindicative of at least one of: a number of co-occurrences of a targetkeyword in a set of target keywords, a correlation between keywords in aset of target keywords, an increase in an event corresponding to thetarget keyword, and a decrease in an event corresponding to the targetkeyword.
 12. The computer program product of claim 9, wherein the methodfurther comprises: storing keywords that belong to one or morecategories respectively associated with the one or more categories; andstoring templates from the decomposed one or more portions of text,wherein the decomposing the one or more portions of text includesdetecting a stored keyword from the one or more portions of text todetermine a template based on areas of the one or more portions of text,not including the keyword in the one or more portions of text.
 13. Thecomputer program product of claim 12, wherein the method furthercomprises: correcting orthogonal variants of a keyword and a templatefrom a decomposed portion of text based on one of: a stored keyword anda stored template.
 14. The computer program product of claim 13, whereinthe method further comprises: in response to determining that an editdistance between a keyword obtained by decomposing a portion of text anda stored keyword is less than a predetermined reference distance,determining that the keyword obtained by decomposing a portion of textand the stored keyword are identical.
 15. The computer program productof claim 13, wherein the method further comprises: in response todetermining that an edit distance between a template obtained bydecomposing a portion of text and a stored template is less than apredetermined reference distance, determining that the template obtainedby decomposing a portion of text and the stored template are identical.16. The computer program product of claim 12, wherein the method furthercomprises: providing an input section allowing for user input to entertarget text and modify target text, wherein the provided input sectionincludes, while a user in entering text, an input candidate and one ormore of: a stored keyword and a stored template.
 17. A computer systemfor generating target text based on target data, the computer systemcomprising: one or more computer processors; one or more computerreadable storage media; and program instructions stored on the computerreadable storage media for execution by at least one of the one or moreprocessors to perform a method comprising: decomposing one or moreportions of text into at least one corresponding keyword and at leastone corresponding template; learning a classification model associatedwith selecting a template based on a category of a keyword; identifyinga target keyword that is represented by target data; selecting a targettemplate that is used to represent the target data based on a categoryassociated with the identified target keyword utilizing theclassification model; and generating target text that represents thetarget data based on the selected text template based on the selectedtarget template and the identified target keyword.
 18. The computersystem of claim 17, wherein the method further comprises: acquiring atarget statistic as a statistic of an events that corresponds to theidentified target keyword; and selecting the target template based onthe category associated with the identified target keyword and thetarget statistic, wherein learning the classification model is based onthe category of the keyword and a statistic of an event that correspondsto the keyword.
 19. The computer system of claim 18, wherein theacquired target statistic is indicative of at least one of: a number ofco-occurrences of a target keyword in a set of target keywords, acorrelation between keywords in a set of target keywords, an increase inan event corresponding to the target keyword, and a decrease in an eventcorresponding to the target keyword.
 20. The computer system of claim17, wherein the method further comprises: storing keywords that belongto one or more categories respectively associated with the one or morecategories; and storing templates from the decomposed one or moreportions of text, wherein the decomposing the one or more portions oftext includes detecting a stored keyword from the one or more portionsof text to determine a template based on areas of the one or moreportions of text, not including the keyword in the one or more portionsof text.